﻿using gixoom.Dom.Block;

namespace gixoom.Dom.Storage.File
{
    internal interface IBlockIdToFileNameMapping
    {
        /// <summary>
        /// Returns file name associated with the specified block id.
        /// </summary>
        /// <param name="blockId">block id</param>
        /// <returns>file name associated with the specified block id</returns>
        /// <exception cref="System.ArgumentNullException"><i>blockId</i> is a null reference.</exception>
        string GetFileNameByBlockId(IBlockId blockId);

        /// <summary>
        /// Sets file name by the specified block id.
        /// </summary>
        /// <param name="fileName">file name which will be associated with the specified block id</param>
        /// <param name="blockId">block id</param>
        /// <exception cref="System.ArgumentNullException">One of the arguments is a null reference.</exception>
        /// <exception cref="System.ArgumentException"><i>fileName</i> is an empty string.</exception>
        void SetFileNameByBlockId(string fileName, IBlockId blockId);
    }
}
